package com.example.onlineanswer.service;

import com.example.onlineanswer.model.vo.CertificateVO;
import org.springframework.core.io.Resource;

import java.util.List;

public interface CertificateService {

    /**
     * 获取用户的所有证书列表
     * @param userId 用户ID
     * @return 证书列表
     */
    List<CertificateVO> getUserCertificates(Long userId);

    /**
     * 获取用户在指定竞赛中的证书，如果符合条件但不存在则尝试生成。
     * @param userId 用户ID
     * @param contestId 竞赛ID
     * @return 单个证书VO，或null（如果不符合资格或无证书）
     */
    CertificateVO getUserCertificateForContest(Long userId, Long contestId);

    /**
     * 加载证书文件资源以供下载。
     * @param certificateId 证书ID
     * @param userId 请求下载的用户ID，用于权限校验
     * @return Spring Resource对象
     */
    Resource loadCertificateFile(Long certificateId, Long userId);

    // Potentially a method to trigger certificate generation for a contest, if needed separately
    // void generateCertificatesForContest(Long contestId);
} 